﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using NUnit.Framework;

using Lottery.MediaData.Core;

namespace Lottery.UnitTest.L14 {
    [TestFixture]
    public class Table4 {
        [Test]
        public void Test() {
            var data = new List<WZ>();
            // 1
            data.Add(new WZ { Three = "中", One = "小", Zero = "大", PreText = "小" });
            // 2
            data.Add(new WZ { Three = "小", One = "中", Zero = "大", PreText = "大" });
            // 3
            data.Add(new WZ { Three = "大", One = "中", Zero = "小", PreText = "大" });
            // 4
            data.Add(new WZ { Three = "大", One = "小", Zero = "中", PreText = "大" });
            // 5
            data.Add(new WZ { Three = "大", One = "小", Zero = "中", PreText = "大" });
            // 6
            data.Add(new WZ { Three = "大", One = "小", Zero = "中", PreText = "小" });
            // 7
            data.Add(new WZ { Three = "大", One = "中", Zero = "小", PreText = "大" });
            // 8
            data.Add(new WZ { Three = "大", One = "中", Zero = "小", PreText = "小" });
            // 9
            data.Add(new WZ { Three = "大", One = "中", Zero = "小", PreText = "大" });
            // 10
            data.Add(new WZ { Three = "中", One = "小", Zero = "大", PreText = "小" });
            // 11
            data.Add(new WZ { Three = "小", One = "中", Zero = "大", PreText = "中" });
            // 12
            data.Add(new WZ { Three = "大", One = "小", Zero = "中", PreText = "小" });
            // 13
            data.Add(new WZ { Three = "大", One = "中", Zero = "小", PreText = "中" });
            // 14
            data.Add(new WZ { Three = "大", One = "中", Zero = "小", PreText = "小" });

            var result = WZHelper.Gen(data);
            var d = new[] { 
                new[] { "0", "3", "1", "1", "", "", "1", "0", "0", "", "", "10", "0", "", "1" }, // 第1场
                new[] { "0", "1", "3", "0", "0", "", "", "3", "", "", "3", "30", "0", "", "3" }, // 第2场
                new[] { "3", "1", "0", "3", "3", "", "", "", "", "", "", "3", "3", "", "" }, //3
                new[] { "3", "0", "1", "3", "3", "", "", "", "", "", "", "3", "3", "", "" }, // 4
                new[] { "3", "0", "1", "3", "3", "", "", "1", "", "", "1", "31", "3", "", "1" }, //5
                new[] { "3", "0", "1", "1", "", "", "1", "3", "3", "", "", "31", "3", "", "1" }, //6
                new[] { "3", "1", "0", "3", "3", "", "", "0", "", "", "0", "30", "3", "", "0" }, // 7
                new[] { "3", "1", "0", "0", "", "", "0", "3", "3", "", "", "30", "3", "", "0" }, // 8
                new[] { "3", "1", "0", "3", "3", "", "", "0", "", "", "0", "30", "3", "", "0" }, // 9
                new[] { "0", "3", "1", "1", "", "", "1", "30", "0", "3", "", "310", "0", "3", "1" }, // 10
                new[] { "0", "1", "3", "1", "", "1", "", "3", "", "", "3", "31", "", "1", "3" }, // 11
                new[] { "3", "0", "1", "1", "", "", "1", "0", "", "0", "", "10", "", "0", "1" }, // 12
                new[] { "3", "1", "0", "1", "", "1", "", "0", "", "", "0", "10", "", "1", "0" }, // 13
                new[] { "3", "1", "0", "0", "", "", "0", "1", "", "1", "", "10", "", "1", "0" }, // 14
            };
            for (int col = 0; col < d.Length; col++)
                for (int row = 0; row < d[col].Length; row++)
                    Assert.AreEqual(d[col][row], result[col, row], string.Format("{1}-{0}", row + 1, col + 1));

        }
    }
}
